package br.com.j7.jdesk.persistence.repository;

import java.util.List;

import br.com.j7.jdesk.library.exception.ListenerException;
import br.com.j7.jdesk.library.exception.RepositoryException;
import br.com.j7.jdesk.persistence.entity.Enterprises;
import br.com.j7.jdesk.persistence.entity.UsersGroups;

/**
 * Interface {@link Repository} para a entidade {@link UsersGroups}
 * 
 * @author Edivando Alves
 *
 */
public interface UserGroupRepository extends Repository<UsersGroups>{

	/**
	 * Obtem uma entidade {@link UsersGroups} por cdUserGroup e por {@link Enterprises}
	 * 
	 * @param cdUserGroup String
	 * @param enterprise {@link Enterprises}
	 * @return {@link UsersGroups}
	 * @throws RepositoryException
	 */
	public UsersGroups findByUserGroup(String cdUserGroup, Enterprises enterprise) throws RepositoryException;
	
	/**
	 * Obtem uma {@link List} de {@link UsersGroups} por {@link Enterprises}
	 * 
	 * @param enterprises {@link Enterprises}
	 * @return {@link List} of {@link UsersGroups}
	 * @throws RepositoryException
	 */
	public List<UsersGroups> listByEnterprise(Enterprises enterprises) throws RepositoryException;
}
